#ifndef _HJ212_CLIENT_CONFIG_H
#define _HJ212_CLIENT_CONFIG_H

#include <stdio.h>

#ifdef _WIN32_WINNT
    #define localtime_r(_Tm, _Time) ((volatile typeof(_Tm))(localtime_s(_Time, _Tm) ? NULL : _Tm))
#else
    #include <sys/_timeval.h>
#endif

/* 配置信息 */
#define HJ212_RECV_BUFFER_SIZE (1036)   // 接受缓冲区区
#define HJ212_PACK_MAX_SIZE (1036)      // 每包字节流最大长度
#define HJ212_PACK_QUEUE_MAX_NUM (10)   // 发送队列元素数量

#define HJ212_QN_MAX_LEN (24)           // QN最大长度
#define HJ212_SYSCODE_MAX_LEN (8)       // 系统编码
#define HJ212_ACCESS_PWD_MAX_LEN (20)   // 访问密码
#define HJ212_MN_MAX_LEN (30)           // MN号
#define HJ212_POLCODE_MAX_LEN (20)      // 污染物因子的编码最大长度
#define HJ212_POLSTATE_MAX_LEN  (20)    // 污染物状态长度

#define HJ212_GENERAL_CP_MAX_LEN (256)  // 收到的CP字段最大大小

#define HJ212_POL_MAXNUM_IN_QUEUE (50)  // hj212_datamsg队列中最大污染物数量
#define HJ212_POL_MAXNUM_IN_RTDATA (13) // 每个实时数据包中8个污染物
#define HJ212_POL_MAXNUM_IN_HISDATA (8) // 每个历史数据包中4个污染物

#define HJ212_POLSTATE_MAXNUM_IN_QUEUE (50)     // hj212_datamsg队列中最大状态参数数量
#define HJ212_POLSTATE_MAXNUM_IN_POLSTATE (16)  // 每个状态参数数据包中状态参数的个数

/* *
 * 调试相关
 */
#include "hj_debug.h"
/* 断言 */
#define HJ_ASSERT(EX) SYSTEM_ASSERT(EX)
/* 日志 */
#define HJ212_DEBUG_ENABLE (0) // 日志总开关
#if 1
#define HJ_DBG_LOG_LINE(lvl, color_n, ...) \
    hj_dbg_log_line(lvl"/"HJ_LOG_TAG, NULL, __VA_ARGS__)

#define HJ_DBG_LOG_HEX(lvl, color_n, buffer, len,  ...) \
    hj_dbg_log_hex(lvl"/"HJ_LOG_TAG, NULL, buffer, len, HJ_LOG_HEX_WIDTH, __VA_ARGS__)

#else
#define HJ_LOG_OUTPUT(...)          log_print(__VA_ARGS__)
#define HJ_DBG_LOG_BEGIN(lvl_name, color_n)             \
do                                                      \
{                                                       \
    print_current_time();                               \
    HJ_LOG_OUTPUT("[" lvl_name"/" HJ_LOG_TAG"] ");      \
} while(0)
#define HJ_DBG_LOG_END() HJ_LOG_OUTPUT(HJ_LOG_END_MARK)
#endif









#endif
